/*
 *  GUI.h
 *  Rempart
 *
 *
 */

#ifndef _GUI
#define _GUI

#include <SFML/Graphics.hpp>
#include "Constants.h"
#include "Map.h"
#include "Cursor.h"
#include "EventManager.h"
#include "NotificationsManager.h"
#include "Menu.h"
#include "DebugTools.h"

class Map;

class DebugTools; // parce qu'un compilateur, c'est très idiot.

class GUI : public sf::RenderWindow {
	
private:
#ifdef DEBUG
	sf::String *framerateDisplay;
#endif
	bool loop;
	Map *gameMap;
	Menu *gameMenu;
	DebugTools *debugTools;
	static GUI* instance;
	float elapsedTime;
	
	std::vector<sf::Drawable*> drawLayers;
	
	
	GUI(); // Cette classe est un singleton
	

public:
	~GUI();
	void startLoop();
	void stopLoop();
	static const int width = 960;
	static const int heigth = 707;
	static GUI* getInstance();

	
	//void save();
	//void restore();
	
	
	
	
};

#endif _GUI